feat(kilo-vscode): dev reload and cache busting for webview#215
Draft
markijbema wants to merge 2 commits intodevfrom
Draft
feat(kilo-vscode): dev reload and cache busting for webview#215markijbema wants to merge 2 commits intodevfrom
markijbema wants to merge 2 commits intodevfrom
Conversation
59631ee to
c4d31b5
Compare
- Watch dist/webview.* for changes in development mode and auto-reload the webview HTML so changes during `pnpm watch` are reflected without manually reloading the extension host window. - Append ?v=<timestamp> cache-buster to script/style URIs so the webview browser doesn't serve stale bundles after a rebuild. - Pass extensionMode to KiloProvider so dev reload is only active when running from the Extension Development Host.
c4d31b5 to
ef26708
Compare
…cache busting Addresses PR #215 review feedback: 1. Replace FileSystemWatcher-based dev reload with Vite HMR - Add vite + vite-plugin-solid dev dependencies - Create webview-ui/vite.config.ts with port discovery plugin - Create webview-ui/index.html as Vite dev server entry - Add watch:vite script to package.json - Add getHMRHtmlContent() that connects to Vite dev server for true Hot Module Replacement (preserves component state) - Falls back to static build when Vite isn't running 2. Remove Date.now() cache busting from production HTML - Removes ?v=${bust} query params that defeated HTTP caching - Content-hashed filenames from the bundler handle cache invalidation 3. Remove devReloadWatcher field and setupDevReload method entirely - With Vite HMR each webview connects to the dev server independently - No more watcher cleanup issues with multiple webviews
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two DX improvements for the VS Code extension webview, inspired by PR #131:
1. Dev reload for webview
Watches
dist/webview.*for changes when running in Development mode (Extension Development Host). When the webview JS or CSS is rebuilt bypnpm watch, the webview HTML is automatically reloaded — no more manually reloading the extension host window just to see webview changes.Only active when
extensionMode === ExtensionMode.Development, so production installs are unaffected.2. Cache busting on webview assets
Appends
?v=<timestamp>to the script and style URIs in the webview HTML. This prevents the webview's embedded browser from serving stale bundles after a rebuild, which was a common source of confusion during development.Changes
src/KiloProvider.ts: AddedsetupDevReload()method withFileSystemWatcher, cache-bust query param on asset URLs, watcher cleanup indispose()src/extension.ts: Passcontext.extensionModetoKiloProviderconstructor